package org.xx.armory.docs;

/**
 * 文本元素。
 *
 * @author Haart
 */
public class Text
        extends Inline {
    private static final long serialVersionUID = 1L;

    private final String text;

    /**
     * 创建文本元素实例。
     *
     * @param className
     *         文本元素的类名, 会被正规化 。
     * @param text
     *         文本元素的内部文本。
     */
    public Text(
            final String className,
            final String text
    ) {
        super(className);

        this.text = text == null ? "" : text;
    }

    /**
     * 根据颜色生成RGB格式的表示字符串。
     *
     * @param color
     *         指定的颜色。
     * @return RGB格式的表示字符串。
     */
    @SuppressWarnings("unused")
    private static String str(final int color) {
        return String.format("#%02x%02x%02x", (color >> 16) & 0xFF, (color >> 8) & 0xFF, color & 0xFF);
    }

    /**
     * 获取文本元素的内部文本。
     *
     * @return 文本元素的内部文本。
     */
    public final String getText() {
        return this.text;
    }

    /**
     * {@inheritDoc}
     */
    @Override
    public String toString() {
        return "<span class=\"" + this.getClassName() + "\" >"
                + this.text + "</span>";
    }

    public final boolean isEmpty() {
        return this.text == null || this.text.length() == 0;
    }
}
